I just updated to the new version of Go - Go version 1.16.2 Linux/amd64 and am getting an error when I build a Hello, World! example:
go: go.mod file not found in current directory or any parent directory; see 'go help modules'
Even when I follow the fix from that post it isn't working. I set these variables and then build again:
GO111MODULE=on
GOPROXY=https://proxy.golang.org,direct
And the same problem unfortunately.
Go builds packages in module-aware mode by default starting from 1.16. See here.
Navigate to the folder containing the Go file and run:
go mod init <modulename>.
A go.mod file is created here and this directory will become the root of the newly created module. See here to read about Go modules.
From your project directory, add this line of code in your Dockerfile file if you are building a Docker image:
RUN go mod init
Or this in your directory:
go mod init
Change this:
go env -w GO111MODULE=auto
to this:
go env -w GO111MODULE=off
I had the same error when I build a Docker image:
docker build . -t ms-c3alert:1.0.6
Error detail:
Step 11/21 : ENV GO111MODULE=on
---> Using cache
---> 1f1728be0f4a
Step 12/21 : RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o c3alert .
---> Running in ee4b3d33d1d2
go: go.mod file not found in current directory or any parent directory; see 'go help modules'
The command '/bin/sh -c CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o c3alert .' returned a non-zero code: 1
I've resolved it by adding the following lines in my Dockerfile. Previously, it required to have a Go project in modules, according the guide in previous posts:
COPY go.mod .
COPY go.sum .
RUN go mod download
Yes, just follow the tutorial and for me that was doing go mod init test3 to create a module. No one else has been upgrading from the old version or everyone else just understood it properly I guess.
I was trying to run the go build command on my Windows local machine and I ran into the go: go.mod file not found in current directory or any parent directory; see 'go help modules' error.
This is how I went about solving it:
$ pwd and got a response like so /c/projects/go-projects/go-server$ go mod init c/projects/go-projects/go-serverThis totally took away the error and I was able to run the server with the command $ ./go-web
PS: It is important to note that I was running Linux commands on my machine using the Git Bash Linux terminal for Windows, it comes by default in Windows with the installation of git for windows.
Try running the below commands
This worked for me:
FROM golang:alpine
WORKDIR /go/src/app
ADD . .
RUN go mod init
RUN go build -o /helloworld
EXPOSE 6111
CMD ["./helloworld"]
First make sure that your GO111MODULE value is set to "auto". You can check it from:
go env
If it is not set to "auto", then run:
go env -w GO111MODULE=auto
Go to your work directory in terminal and run:
go mod init
go mod tidy
You are good to go!
I have just started learning Go.
And I have found this if you build your programme like below:
go build "name of go app with path"
go build .\Main.go